Định hướng thiết kế trước thời RISC RISC

Những ngày đầu của ngành công nghiệp máy tính, trình biên dịch chưa xuất hiện. Công việc lập trình được thực hiện hoặc bằng ngôn ngữ máy (mã nhị phân) hoặc bằng hợp ngữ. Để việc lập trình đơn giản, các VXL được thêm những lệnh có thể biểu diễn trực tiếp những cấu trúc của ngôn ngữ lập trình cấp cao. Lúc đó thiết kế phần cứng dễ hơn nhiều so với thiết kế trình dịch, vì thế mọi phức tạp đều dồn vào phần cứng.

Một nguyên nhân khác thúc đẩy sự ra đời của những lệnh phức là sự thiếu thốn bộ nhớ. Do bộ nhớ quá nhỏ, do đó sẽ có lợi hơn nhiều nếu tăng mật độ tập trung thông tin trong mã lệnh. Khi mà mỗi byte bộ nhớ còn quá đắt, bộ nhớ chính của toàn bộ hệ thống ở thời kỳ này chỉ vài KB, ngành công nghiệp VXL bị thúc đẩy phải mã hóa thật cao mã lệnh, mã lệnh có thể có kích thước thay đổi, một lệnh có thể thực hiện nhiều phép toán hoặc một lệnh có thể vừa chuyển dữ liệu vừa xử lý dữ liệu. Lúc đó việc đưa ra một lệnh nén thật tốt được ưu tiên hơn là đưa ra một lệnh dễ giải mã.

Lúc này bộ nhớ được sản xuất bằng công nghệ từ do đó nó không những đã ít mà còn chậm. Đây cũng là một lý do để tăng mật độ thông tin trong một mã lệnh. Một mã lệnh với nhiều thông tin sẽ giảm được rất nhiều lần phải truy xuất nguồn bộ nhớ chậm chạp này.

Những CPU thời kỳ này chứa ít thanh ghi vì những lý do sau:

  • Một bit trong CPU bao giờ cũng mắc hơn rất nhiều so với một bit ở bộ nhớ ngoài. Với công nghệ tích hợp ở thời kỳ này muốn có thêm thanh ghi bắt buộc phải có thêm vùng trống trên board hoặc trên chip.
  • Một lượng lớn thanh ghi cũng sẽ cần một lượng lớn các bit trong mã lệnh để xác định các thanh ghi đó.

Vì những lý do trên, những nhà thiết kế VXL cố gắng để mỗi lệnh có thể thực hiện càng nhiều chức năng càng tốt. Điều này dẫn đến một lệnh sẽ làm tất cả công việc như nạp 2 số cần cộng, cộng chúng lại, và cuối cùng lưu trở lại vào bộ nhớ. Cũng lệnh đó lại có thể đọc một số từ thanh ghi và số còn lại từ bộ nhớ sau đó lưu kết quả vào bộ nhớ. Khuynh hướng thiết kế VXL này được gọi là Complex Instruction Set Computer – CISC.

Mục đích chung của thời kỳ này là mỗi lệnh hỗ trợ càng nhiều phương pháp đánh địa chỉ càng tôt, đây chính là lý thuyết trực giao. Điều này dẫn đến một số phức tạp cho CPU, mặc dù theo lý thuyết mỗi lệnh có thể được tối ưu riêng rẽ, làm quá trình thiết kế nhanh hơn nếu người lập trình sử dụng các lệnh đơn giản.

Sự tương phản rõ ràng nhất đến từ hai loại VXL: 6502 và VAX. Chip 6502 có giá $25 với 1 thanh ghi duy nhất, và bằng cách tối ưu giao tiếp bộ nhớ nó có thể hoạt động ở tốc độ cao hơn so với thiết kế ban đầu. VAX vốn là một máy tính nhỏ (minicomputer), nó cần tới một tá các thiết bị phụ và được đặc biệt chú ý bởi một lượng rất lớn các kiểu đánh địa chỉ mà nó hỗ trợ, cũng như lệnh nào của nó cũng đều hỗ trợ các kiểu đánh địa chỉ đó.

Liên quan